<?php
/**
 * @author DXing1202 <dxing1202@outlook.com>
 * @copyright dxing1202.cn
 * @time 2018/2/24
 * @Licensed GPL
 */
namespace app\admin\controller;

use app\common\controller\AdminBase;
use app\admin\model\Admins as AdminsModel;

/**
* Admins 控制器 [管理员管理]
* Class Admins
* @package app\admin\controller
*/
class Admins extends AdminBase{

  /**
   * [管理员列表]
   * @return [模版] [渲染模版adminsList]
   * @AjaxReturn [json] [返回管理员数据]
   */
  public function adminsList(){
    // Ajax判断获取所有管理员数据
    if(Request()->isAjax()){
      // Layui表格返回数据要求
      $page = Request()->get('page'); // Layui get过来的
      $limit = Request()->get('limit'); // Layui get过来的
      $res = [
              'code'  =>0,
              'msg'   => '',
              'count' => AdminsModel::count(),
              'data'  => AdminsModel::getAllData($page,$limit)
             ];
      return $res;
    }
    return $this->fetch();
  }

  /**
   * [添加管理员]
   * @return [模版] [渲染模版AdminAdd]
   * @AjaxReturn [json] [返回1/0 成功/失败]
   */
  public function adminsAdd(){
    // Ajax判断添加管理员
    if(Request()->isAjax()){
      if(AdminsModel::addData(Request()->post())){
        return 1;
      }else{
        return 0;
      }
    }
    return $this->fetch();
  }

  /**
   * [修改管理员]
   * @return [模版] [渲染模版AdminEdit]
   * @AjaxReturn [json] [返回1/0 成功/失败]
   */
  public function adminsEdit(){
    // Ajax判断修改管理员
    if(Request()->isAjax()){
      $id = Request()->post('id');
      $pass = Request()->post('pass');
      if(AdminsModel::checkPass($id,$pass)){
        $data = Request()->except('id,pass');
      }else{
        $data = Request()->except('id');
      }
      if(AdminsModel::editData($id,$data)){
        return 1;
      }else{
        return 0;
      }
    }
    return $this->fetch();
  }

  /**
   * 删除管理员
   * @AjaxReturn [json] [返回1/0 成功/失败]
   */
  public function adminsDel(){
    // Ajax判断删除数据
    if($this->request->isAjax()){
      // 通过request来取到数值，不能直接取到id的数组值。可以先赋值变量再通过下标取值
      // 因为默认的变量修饰符是/s，因此默认的单个变量的取值返回的都是字符串
      // 如果需要传入字符串之外的变量可以使用下面的修饰符
      // s	强制转换为字符串类型
      // d	强制转换为整型类型
      // b	强制转换为布尔类型
      // a	强制转换为数组类型
      // f	强制转换为浮点类型
      // 或者可以直接使用$_GET['id']
      // 就算是字符串也可以直接转为数组去执行删除任务。可以接受数组来进行删除
      // 例如 主键id 1 的值 就是转为 数组[1] 总结：在这里遇到了修饰符的问题
      $id = $this->request->get('id/a');
      $res = AdminsModel::delData($id);
      if($res){
        return 1;
      }else{
        return 0;
      }
    }
  }

  /**
   * 更改管理员状态
   */
  public function changeStatus(){
   if($this->request->isAjax()){
     $data = $this->request->get();
     AdminsModel::update($data);
   }
  }







}
